.TH "PARU.CONF" "5" "2021\-03\-24" "paru v1.10.0" "Paru Manual"
.nh
.ad l
.SH NAME
paru.conf \- paru configuration file

.SH SYNOPSIS
$PARU_CONF, $XDG_CONFIG_HOME/paru/paru.conf, $HOME/.config/paru/paru.conf, /etc/paru.conf

.SH DESCRIPTION
Paru's config file. Based on the format used by 
.BR pacman.conf (5)

Paru first attempts to read the file at $PARU_CONF. If $PARU_CONF is not
set, paru attempts to read from $XDG_CONFIG_HOME/paru/paru.conf. If
$XDG_CONFIG_HOME is not set, or the file doesn't exist, paru attempts to read
from $HOME/.config/paru/paru.conf. If that file doesn't exist, it will read
the system config from /etc/paru.conf.

Additionally, the \fBInclude\fB directive can be used to copy paste files into
the config. This could be used to extend the system config by including it in
your user's config and then defining options.

.SH OPTIONS
Options belonging to the [options] section.

.TP
.B BottomUp
Print search results from bottom to top. AUR results will be printed first.

.TP
.B AurOnly
Assume all targets are from the AUR. Additionally, actions such as
sysupgrade will only act on AUR packages.

Note that dependency resolving will still act normally and include repository
packages.

.TP
.B PkgbuildsOnly
Assume all targets are from PKGBUILD repositories. Additionally, actions such as
sysupgrade will only act on PKGBUILD repository packages.

Note that dependency resolving will still act normally and include repository
and AUR packages.

.TP
.B RepoOnly
Assume all targets are from the repositories. Additionally, actions such as
sysupgrade will only act on repository packages.

.TP
.B Mode = aur|repo|pkgbuilds
Select what kinds of packages paru should act on. Multiple modes can be selected
by separating them with a comma.

Additionally, a, r and p may be used as short hand for aur, repo and pkgbuilds respectively.
Short form modes can also be combined without a comma.
E.g. \fBMode = ar\fR or \fBMode = arp\fR.

.TP
.B SudoLoop [= args...]
Periodically call sudo in the background to prevent it from timing out during
long builds.

Optionally args can be passed to choose how to loop the command. This may be
useful for doas where looping is done differently.

.TP
.B NoCheck
Don't resolve checkdepends or run the check function.

.TP
.B InstallDebug
Also install debug packages when a package provides them.

.TP
.B Devel
During sysupgrade also check AUR development packages for updates. Currently
only Git packages are supported.

Devel checking is done using \fBgit ls-remote\fR. The newest commit hash is
compared against the hash at install time. This allows devel updates to be
checked almost instantly and not require the original PKGBUILD to be downloaded.

.TP
.B IgnoreDevel
Like IgnorePkg but for devel upgrades. Packages matching this will not be tried for a
devel update but may still be upgraded if the pkgver changes.

.TP
.B IgnoreDevelSource
Like IgnoreDevel but targets urls in the source=() array of pkgbuilds. This can be useful
if a package has a properly working main git source but also has an unversioned secondary
source that doesn't effect the pkgver.

.TP
.B CleanAfter
Remove untracked files after installation.

Untracked files are removed with the exception of directories.
This allows VCS packages to easily pull an update
instead of having to reclone the entire repo.

.TP
.B Provides [= all]
Look for matching providers when searching for AUR packages. When multiple
providers are found a menu will appear prompting you to pick one. This
increases dependency resolve time although this should not be noticeable.

By default only targets and missing packages will be searched for providers.
Specifying all will enable this for all packages.

.TP
.B PgpFetch
Prompt to import unknown PGP keys from the \fBvalidpgpkeys\fR field of each
PKGBUILD.

.TP
.B CombinedUpgrade
During sysupgrade, paru will first perform a refresh, then show
its combined menu of repo and AUR packages that will be upgraded. Then after
reviewing the PKGBUILDs, the repo and AUR upgrade will start with no need
for manual intervention.

If paru exits for any reason after the refresh without upgrading, it will be
the user's responsibility to either resolve the reason paru exited or run
a sysupgrade through pacman directly.

.TP
.B BatchInstall
When building and installing AUR packages; instead of installing each package
after building, queue each package for install. Then once either all packages
are built or a package in the build queue is needed as a dependency to build
another package, install all the packages in the install queue.

.TP
.B NewsOnUpgrade
Print new news during sysupgrade.

.TP
.B UseAsk
Use pacman's --ask flag to automatically confirm package conflicts. Paru lists
conflicts ahead of time. It is possible that paru does not detect
a conflict, causing a package to be removed without the user's confirmation.
However, this is very unlikely.

.TP
.B SaveChanges
Commit changes to pkgbuilds made during review.

.TP
.B FailFast
Exit as soon as any AUR packages fail to build.

By default Paru will continue and try to build other AUR packages.

.TP
.B KeepSrc
Keep src/ and pkg/ directories after building packages.

.TP
.B Redownload [= all]
Always download PKGBUILDs of targets even when a copy is available in cache. If
set to all then this applies to all packages, not only targets.

.TP
.B Rebuild [= all, tree]
Always build target packages even when a copy is available in cache. If set to
all, then all packages are rebuilt, not only targets. If set to tree, the whole
dependency tree is rebuilt, including already satisfied dependencies.

.TP
.B RemoveMake [= ask]
Remove makedepends after installing packages. If set to ask, a menu will appear
during builds allowing an option to be chosen then.

.TP
.B UpgradeMenu
Show a detailed list of updates in a similar format to pacman's VerbosePkgLists
option. (See 
.BR pacman.conf(5)).
Upgrades can be skipped using numbers, number ranges, or repo
names.

\fBWarning\fR: It is not recommended to skip updates from the repositories as
this can lead to partial upgrades. This feature is intended to easily skip AUR
updates on the fly that may be broken or have a long compile time. Ultimately
it is up to the user what upgrades they skip.

.TP
.B AurUrl = URL
Set an alternative AUR URL.

.TP
.B AurRpcUrl = URL
Set an alternative URL for the AUR /rpc endpoint.

.TP
.B CloneDir = /path/to/dir
Directory used to download and run PKGBUILDs.


.TP
.B SortBy = <votes|popularity|name|base|submitted|modified|id|baseid>
Defaults to votes. Sort AUR results according to the options in "Sort by"
visible here: https://aur.archlinux.org/packages/

.TP
.B SearchBy = <name|name-desc|maintainer|depends|checkdepends|makedepends|optdepends>
Defaults to name-desc. Search AUR packages according to the options in 
"Search by" visible here: https://aur.archlinux.org/packages/

.TP
.B Limit = N
Limit the number of packages returned in a search to the given amount. Defaults
to 0 (no limit). This applies separately to repo and AUR packages.

.TP
.B CompletionInterval = N
Time in days to refresh the completion cache. Setting this to 0 will cause the
cache to be refreshed every time, while setting this to -1 will cause the cache
to never be refreshed. Defaults to 7.

.TP
.B PacmanConf = path/to/pacman.conf
The pacman config file to use.

.TP
.B MakepkgConf = path/to/makepkg.conf
The makepkg config file to use.

.TP
.B DevelSuffixes = Suffixes...
Suffixes that paru will use to decide if a package is a devel package.
Used when determining if a pkgver bump is used when the --needed option is
set.

.TP
.B NoWarn = Packages...
Don't warn when these packages are not in the aur, out of date, or orphaned.

.TP
.B LocalRepo [= Repos...]
Use a local repo to build and upgrade AUR packages.

Paru will act on packages in the enabled repos instead of foreign packages.
The repo must already be declared in pacman.conf but does not have to already exist on disk.

Optionally a list of repos to use can be passed. By default paru will consider all
local repos, building new packages into the fist listed repo and upgrading the packages
in other enabled repos.

.TP
.B Chroot [= path/to/chroot]
Build packages in a chroot. This requires the LocalRepo option to be enabled.
Optionally a directory may be passed to specify where to create the chroot.

.TP
.B Sign [= key]
Sign packages with gpg. Optionally indicate which key to sign with.

.TP
.B SignDb [= key]
Sign databases with gpg. Optionally indicate which key to sign with.

.TP
.B KeepRepoCache
Normally upon AUR packages getting updated the old versions will be removed from the local repo.
This option disables that behavior, keeping the both all versions and only updating the DB.

.TP
.B SkipReview
Skip the review process.

.SH BIN
Options belonging to the [bin] section.

.TP
.B Makepkg = path/to/makepkg
The command to use for \fBmakepkg\fR calls. This can be a command in
\fBPATH\fR or an absolute path to the file.

.TP
.B Pacman = path/to/pacman
The command to use for \fBpacman\fR calls. This can be a command in
\fBPATH\fR or an absolute path to the file.

.TP
.B PacmanConf = path/to/pacman-conf
The command to use for \fBpacman-conf\fR calls. This can be a command in
\fBPATH\fR or an absolute path to the file.

.TP
.B Git = path/to/git
The command to use for \fBgit\fR calls. This can be a command in
\fBPATH\fR or an absolute path to the file.

.TP
.B Asp = path/to/asp
The command to use for \fBasp\fR calls. This can be a command in
\fBPATH\fR or an absolute path to the file.

.TP
.B Bat = path/to/bat
The command to use for \fBbat\fR calls. This can be a command in
\fBPATH\fR or an absolute path to the file.

.TP
.B Sudo = path/to/sudo
The command to use for \fBsudo\fR calls. This can be a command in
\fBPATH\fR or an absolute path to the file. The SudoLoop option is not
guaranteed to work with a custom \fBsudo\fR command.

.TP
.B FileManager = path/to/fm
This enables fm review mode, where PKGBUILD review is done using the file
manager specified by command.

This allows the PKGBUILDs and related files to be edited. Changes won't
persist unless committed.

.TP
.B MFlags = Flags...
Passes arguments to makepkg. These flags get passed to every instance where
makepkg is called by paru. Arguments are split on whitespace before being
passed to makepkg.

.TP
.B GitFlags = Flags...
Passes arguments to git. These flags get passed to every instance where
git is called by paru. Arguments are split on whitespace before being
passed to git.
.TP

.B GpgFlags = Flags...
Passes arguments to gpg. These flags get passed to every instance where
gpg is called by paru. Arguments are split on whitespace before being
passed to gpg.

.TP
.B BatFlags = Flags...
Passes arguments to bat. These flags get passed to every instance where
bat is called by paru. Arguments are split on whitespace before being
passed to bat.

.TP
.B SudoFlags = Flags...
Passes arguments to sudo. These flags get passed to every instance where
sudo is called by paru. Arguments are split on whitespace before being
passed to sudo.

.TP
.B FileManagerFlags = Flags...
Passes arguments to the file manager. These flags get passed to every instance
where file manager is called by paru. Arguments are split on whitespace before
being passed to file manager.

.TP
.B Pager = Command
Command to use for paging

.TP
.B PreBuildCommand = Command
Command will be executed for each package before it is built.

The command will be run via 'sh -c' and the command's current directory will be
set to the directory containing the package's PKGBUILD. If a package is already
built then the build will be skipped but this command will still be run for
that package.

The variables PKGBASE and VERSION will be set for the command to use.

.SH ENV
Set environment variables.

.TP
.B Key = Value
Sets the environment variable Key to Value.


.SH PKGBUILD REPOSITORY SECTION
PKGBUILD repositories can be defined by adding a [reponame] section, where reponame
is the name of the repository you wish to add.

A PKGBUILD repository acts very much like the AUR in terms of package installation
and upgrades. Packages in PKGBUILD repositories also take priority over the AUR so
may be used to mask packages.

The layout of a PKGBUILD repository is simply a directory that contains PKGBUILDs.
Paru will recursively scan a repository for PKGBUILDs, up to 3 levels by default.

Paru will refresh PKGBUILD repositories when it refreshes repository databases.
Refreshing just PKGBUILD repositories can be done with \fBparu -Sya\fR.

.TP
.B URL = https://path/to/repo
Git URL to the PKGBUILD repository. File paths may be used to point to git repos on
disk.

.TP
.B Path = /path/to/repo
Can be used as an alternative to \fBURL\fR to point to a PKGBUILD repository on disk.
Unlike using a URL path, changes to this directory are propagated to paru immediately
and not on \fBparu -Sya\fR. There is also no review step for this kind of repository.

.TP
.B Depth = N
The search depth for PKGBUILD scanning.

.TP
.B SkipReview
Skip review for this repository.

.TP
.B GenerateSrcinfo
Force regeneration of the .SRCINFO file even if it exists on disk. This is useful for
repositories that forget to update their .SRCINFO files.
